In a communications system, channel encoding is generally used to improve data transmission reliability, so as to ensure communication quality. The polar code is the first code that is theoretically proved that it can achieve the Shannon capacity and has low encoding-decoding complexity. The polar code is a linear block code, and decoding of the polar code can be performed by using successive-cancellation (SC) or a successive-cancellation list (SC-List).
In the prior art, a conventional random puncturing hybrid automatic repeat request (HARQ) technology is used for the polar code, that is, a puncture location is selected randomly. However, by using this conventional technology, a frame error rate is relatively high and HARQ performance is relatively poor.
In addition, when a code length is excessively long, SC decoding can achieve good performance that is close to the Shannon limit. However, when the code length is relatively short or is an intermediate length, SC decoding of the polar code has relatively poor performance, and a punctured polar code has a high frame error rate. Compared with the performance of SC decoding, performance of List decoding is improved, but complexity of List decoding is higher than complexity of SC decoding.